/**
 * 诸葛IO埋点
 * 使用方式组件内 this.$addZhuGeTrack(route, data)
 * @Prop route 对应的路由或者唯一key值，在routeMap中配置
 * @Prop data 自定义埋点数据，当route没有匹配到会默认使用data数据埋点
 */
import Vue from 'vue'
const routeMap = {
  '/business': '工单',
  '/home': '首页',
  '/call_workBench': '通话',
  'cdr_call': '通话-来电',
  'cdr_outbound': '通话-外呼',
  '/im_workBench': '在线客服',
  'webchat_todo': '在线-会话',
  'webchat_leaveMessage': '在线-留言',
  'webchat_queue': '在线-排队',
  '/crm_workBench': '客户',
  '/ticket_workBench': '工单',
  '/data_center': '数据中心',
  '/data_center/index/child_callSheet': '数据中心-通话记录',
  '/data_center/index/webchat_session': '数据中心-会话记录',
  '/data_center/index/out_call_report': '数据中心-外呼报表',
  '/data_center/index/in_call_report': '数据中心-呼入报表',
  '/data_center/index/in_call_queue_report': '数据中心-技能组报表',
  '/data_center/index/in_call_agent_report': '数据中心-通话-座席报表',
  '/data_center/index/report_session': '数据中心-会话报表',
  '/data_center/index/report_agent': '数据中心-在线-座席报表',
  '/data_center/index/online_monitoring': '数据中心-在线监控',
  '/data_center/index/agent_Record': '数据中心-在线座席日志',
  '/data_center/index/call_monitoring': '数据中心-通话监控',
  '/transmission_center': '传输中心',
  '/transmission_center/index/tx_export_task': '传输中心-导出任务',
  '/transmission_center/index/tx_import_task': '传输中心-导入任务',
  '/app_center': '应用中心',
  '/robot': '机器人',
  '/knowledge_mgt': '知识库',
  '/call_task': '外呼任务',
  '/call_task/index/my_call_task_list': '外呼任务-我的外呼任务-预览外呼',
  '/call_task/index/my_auto_call_task_list': '外呼任务-我的外呼任务-自动外呼',
  '/call_task/index/preview_dialout_list': '外呼任务-外呼任务管理-预览外呼',
  '/call_task/index/auto_call_task_list': '外呼任务-外呼任务管理-自动外呼',
  '/message_center': '消息中心',
  '/setting_center': '设置',
  '/setting_center/index/user_management': '设置-座席',
  '/setting_center/index/skillGroup_management': '设置-技能组',
  '/setting_center/index/role_management': '设置-角色',
  '/setting_center/index/number_management': '设置-号码管理',
  'server_number': '设置-号码管理-服务号',
  'display_number': '设置-号码管理-外显号',
  'sip_number': '设置-号码管理-SIP号',
  '/setting_center/index/voice_navigation': '设置-语音导航',
  'child_voice_navigation': '设置-语音导航-语音导航',
  'telephone_satisfaction': '设置-语音导航-电话满意度',
  'voice_database': '设置-语音导航-语音库',
  '/setting_center/index/base_setting': '设置-基本设置',
  'phoneBar_status': '设置-基本设置-电话条状态',
  'call_tag_config': '设置-基本设置-通话标签',
  'dialout_memory': '设置-基本设置-外呼记忆',
  'statistical_rules': '设置-基本设置-统计规则',
  '/setting_center/index/channel_setting_multi': '设置-网页',
  'access_list': '设置-网页-接入列表',
  'style_setting': '设置-网页-样式设置',
  '/setting_center/index/channel_setting_wechat': '设置-微信公众号',
  '/setting_center/index/channel_setting_wechatApp': '设置-微信小程序',
  'wechatApp_access_list': '设置-微信小程序-原生接入',
  'wechatApp_sdk_access_list': '设置-微信小程序-SDK接入',
  'wechatApp_style_list': '设置-微信小程序-样式设置',
  '/setting_center/index/channel_setting_sdk': '设置-移动SDK',
  'sdk_access_list': '设置-移动SDK-接入列表',
  'sdk_style_list': '设置-移动SDK-样式列表',
  '/setting_center/index/channel_setting_baiduBCP': '设置-百度营销',
  '/setting_center/index/channel_setting_wechatService': '设置-微信客服',
  '/setting_center/index/enterprise_wechat': '设置-企业微信',
  '/setting_center/index/channel_setting_process': '设置-流程管理',
  '/setting_center/index/globalSetting': '设置-全局设置',
  'satisfaction_config': '设置-全局设置-满意度设置',
  'custom_agent_status': '设置-全局设置-自定义座席状态',
  'custom_messge_setting': '设置-全局设置-自定义消息设置',
  'im_session_tag_setting': '设置-全局设置-会话标签',
  'other_setting': '设置-全局设置-其他设置',
  'black_list': '设置-全局设置-黑名单',
  '/setting_center/index/docking_setting': '设置-对接设置',
  'child_docking_setting': '设置-对接设置-对接设置',
  'docking_setting_event_send': '设置-对接设置-事件推送',
  'docking_setting_function_page': '设置-对接设置-功能页对接',
  '/setting_center/index/work_time_setting': '设置-工作时间设置',
  '/setting_center/index/notice_setting': '设置-公告管理'
}

// @ts-ignore
const addZhuGeIO = window.zhuge || {
  track (data) {
    console.warn(`🔉:[非线上环境]诸葛IO埋点[${data}]`)
  }
}
// 防止重复点击事件，记录上一次点击路由
let lastTrack = ''
const addZhuGeTrack = (route: any, data: any) => {
  if (route && routeMap[route]) {
    if (routeMap[route] === lastTrack) {
      return
    }
    lastTrack = routeMap[route]
    addZhuGeIO.track(routeMap[route])
  } else {
    if (data) {
      addZhuGeIO.track(data)
    } else {
      console.warn('zhugeio params error')
    }
  }
}
Vue.prototype.$addZhuGeTrack = addZhuGeTrack
